package sim;

import java.awt.Color;

/**
 * Constants.
 */
public class Constants {
	/* Simulation return flags */
	public static final int RUN_INCOMPLETE = -1, WINDOW_CLOSED = -2;

	/* Config */
	public static final int DEFAULT_WIDTH = 1000;
	public static final int DEFAULT_HEIGHT = 600;
	public static final int DEFAULT_RES = 20;
	public static final int DEFAULT_RUNS = 1;
	public static final int DEFAULT_DELAY = 5;
	public static final int DEFAULT_STEP_LIMIT = Integer.MAX_VALUE;
	public static final Color DEFAULT_TEXT_COLOR = new Color(140, 140, 140);
	public static final int DEFAULT_GOAL_RADIUS = 200;
	public static final Color DEFAULT_GOAL_COLOR = new Color(240, 240, 240);

	public static final int DEFAULT_ROBOT_WIDTH = 15;
	public static final int DEFAULT_ROBOT_HEIGHT = 15;
	public static final int DEFAULT_ROBOT_VMAX = 10;
	public static final int DEFAULT_ROBOT_PMAX = 1000;
	public static final int DEFAULT_ROBOT_FMAX = 500;
	public static final int DEFAULT_ROBOT_DRAWTYPE = 0;
	public static final int DEFAULT_ROBOT_COST = 100;
	public static final Color DEFAULT_ROBOT_COLOR = new Color(0, 0, 0);
	public static final Color DEFAULT_SONAR_COLOR = new Color(192, 192, 192);

	public static final int V_THRESHOLD = 5;

	public static final int DEFAULT_OBJ_WIDTH = 50;
	public static final int DEFAULT_OBJ_HEIGHT = 25;
	public static final int DEFAULT_CAP = 0;
	public static final int DEFAULT_OBJ_F1 = 250;
	public static final int DEFAULT_OBJ_F2 = 150;
	public static final int DEFAULT_OBJ_REQ = 1;
	public static final Color DEFAULT_OBJ_COLOR = new Color(0, 0, 0);

	public static final int DEFAULT_OBS_RADIUS = 10;
	public static final Color DEFAULT_OBS_COLOR = new Color(160, 160, 160);

	public static final double DEFAULT_PRIORITY = 1;
	public static final double DEFAULT_BIAS = 1;

	/* Simulation physical constants */
	public static final double lArm = 20;
	public static final double Mf = 0.2;
	public static final double Mt = 0.02;

	public static final int SONAR_RANGE = 100, SONAR_ANGLE = 30;
	public static final byte RIGHT = 0x2, LEFT = 0x1, FORWARD = 0x7, BACKWARD = 0x6;
	public static final byte WANDER = 0x1, PUSH = 0x2, WAIT = 0x4, HELP = 0x8, BROKEN = 0x0, PRIORITY = 0x10;
	public static final byte FORE_R = 0x0, HIND_R = 0x1, HIND_L = 0x2, FORE_L = 0x3;
}
